#include <iostream>
#include <functional>
using namespace std;

//func()函数，接受两个参数
void func(int num,const string& str)
{
    cout << "func(" << num <<", " << str << ")" << endl;
}

int main(){
    string str = "abc";
    //std::placeholders名称空间,_1指定了当调用func()的时候，f1()的第一个参数应该出现在的位置.
    auto f1 = bind(func,placeholders::_1,str);
    f1(16);

    //bind()用于重新排列参数的顺序.
    auto f2 = bind(func,placeholders::_2,placeholders::_1);
    f2("Test",32);
    return 0;
}